
#include "app_config.h"
#if TEST_BSP_LOG_PRINTF

#include "log_print.h"
#include "sys_tick.h"

/* 底层驱动 */
/* 发送标志， 0=空闲，1=发送中 */
uint8_t tx_flag = 0;

uint8_t is_tx_ok()
{
    return tx_flag;
}

void tx_ing()
{
     tx_flag = 1;
}

void tx_finish()
{
     tx_flag = 0;
}



/**
 * @brief 进行发送标志修改，表示发送完成
 * 
 */
static void TX_Timer_callbak()
{   
    if(is_tx_ok() == 1)// 处于发送中，则设为发送结束
    {
        tx_finish();
    }  
}

/**
 * @brief 填充发送内容
 * 
 */
static void log_Timer_callbak()
{   
    static uint16_t count = 0;
    static uint16_t tick = 0;

    count++;
    tick++;
    if(count == 200)// 定时器10ms回调，间隔2秒填充一次打印
    {
        count = 0;
        log_printf("log print test, current tick is %d \r\n", tick);
    }
   
}
    
/**
 * @brief 调度框架时基初始化
 * 
 * @param ptr 
 */
void  TX_TImer_Init(void *ptr)
{ 
    sys_timer_callback_add(&TX_Timer_callbak); // 赋值 发送完成函数
    sys_timer_callback_add(&log_Timer_callbak); // 赋值 打印填充函数
    
}
EXPORT_Lv2_PREV(TX_TImer_Init, NULL);



void TEST_log_printf_init(void * ptr)
{
    log_buff_init();

    DEBUG_INFO_PRINT("log buff inint finish \r\n");

    log_printf("log print start\r\n");
}

EXPORT_Lv6_APP_SINGLE(TEST_log_printf_init,NULL);


void TEST_log_printf_serve(void * ptr)
{
    log_print_serve(); 
}

EXPORT_Lv7_APP_MANGE(TEST_log_printf_serve,NULL);


#endif
















